package org.pidan.basic.algorithm.xuanze;

import java.util.Arrays;

/**
 * {@code @description}: 选择排序
 * 自己理解：循环找到最小的数，放到最开始，从头往后开始排序
 * {@code @author}: huangyuxin
 * {@code @date}: 2023-11-23
 */
public class Client {

    public static void main(String[] args) {

        int[] arr = new int[]{4, 10, 5, 15, 2, 4, 5};
        int[] sort = sort(arr);
        String string = Arrays.toString(sort);
        System.out.println(string);
    }

    public static int[] sort(int[] arr) {

        //总共要经过N-1轮比较
        for (int i = 0; i < arr.length - 1; i++) {

            int min = i;
            //每轮需要比较的次数
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[min]) {
                    min = j;//记录目前能找到的最小值元素的下标
                }
            }
            //将找到的最小值和i位置所在的值进行交换
            if (i != min) {
                int temp = arr[i];
                arr[i] = arr[min];
                arr[min] = temp;
            }
            //第 i轮排序的结果为
            System.out.println(i + "排序结果");

        }
        return arr;
    }
}
